package com.jxtc.enterprise.common.utils;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class CurrencyUtil {
    /**
     * 将金额从元转换为分
     *
     * @param amountInYuan 金额（元），类型为 BigDecimal
     * @return 金额（分），类型为 int
     */
    public static int yuanToFen(BigDecimal amountInYuan) {
        if (amountInYuan == null) {
            throw new IllegalArgumentException("金额不能为 null");
        }
        // 将元乘以100并进行四舍五入，转换为分
        return amountInYuan.multiply(new BigDecimal("100")).intValue();
    }

    /**
     * 将金额从分转换为元（四舍五入，保留两位小数）
     *
     * @param amountInFen 金额（分），类型为 int
     * @return 金额（元），类型为 String
     */
    public static String fenToYuan(int amountInFen) {
        BigDecimal amount = new BigDecimal(amountInFen);
        // 使用 BigDecimal 的 divide 方法除以 100
        BigDecimal result = amount.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
        return result.toString();
    }
}
